(function () {
    function I(g) {
        "use strict";
        var A, C, I = {
            omitExtraWLInCodeBlocks: {
                defaultValue: !1,
                describe: "Omit the default extra whiteline added to code blocks",
                type: "boolean"
            },
            noHeaderId: {defaultValue: !1, describe: "Turn on/off generated header id", type: "boolean"},
            prefixHeaderId: {
                defaultValue: !1,
                describe: "Add a prefix to the generated header ids. Passing a string will prefix that string to the header id. Setting to true will add a generic 'section-' prefix",
                type: "string"
            },
            rawPrefixHeaderId: {
                defaultValue: !1,
                describe: 'Setting this option to true will prevent showdown from modifying the prefix. This might result in malformed IDs (if, for instance, the " char is used in the prefix)',
                type: "boolean"
            },
            ghCompatibleHeaderId: {
                defaultValue: !1,
                describe: "Generate header ids compatible with github style (spaces are replaced with dashes, a bunch of non alphanumeric chars are removed)",
                type: "boolean"
            },
            rawHeaderId: {
                defaultValue: !1,
                describe: "Remove only spaces, ' and \" from generated header ids (including prefixes), replacing them with dashes (-). WARNING: This might result in malformed ids",
                type: "boolean"
            },
            headerLevelStart: {defaultValue: !1, describe: "The header blocks level start", type: "integer"},
            parseImgDimensions: {defaultValue: !1, describe: "Turn on/off image dimension parsing", type: "boolean"},
            simplifiedAutoLink: {defaultValue: !1, describe: "Turn on/off GFM autolink style", type: "boolean"},
            excludeTrailingPunctuationFromURLs: {
                defaultValue: !1,
                describe: "Excludes trailing punctuation from links generated with autoLinking",
                type: "boolean"
            },
            literalMidWordUnderscores: {defaultValue: !1, describe: "Parse midword underscores as literal underscores", type: "boolean"},
            literalMidWordAsterisks: {defaultValue: !1, describe: "Parse midword asterisks as literal asterisks", type: "boolean"},
            strikethrough: {defaultValue: !1, describe: "Turn on/off strikethrough support", type: "boolean"},
            tables: {defaultValue: !1, describe: "Turn on/off tables support", type: "boolean"},
            tablesHeaderId: {defaultValue: !1, describe: "Add an id to table headers", type: "boolean"},
            ghCodeBlocks: {defaultValue: !0, describe: "Turn on/off GFM fenced code blocks support", type: "boolean"},
            tasklists: {defaultValue: !1, describe: "Turn on/off GFM tasklist support", type: "boolean"},
            smoothLivePreview: {
                defaultValue: !1,
                describe: "Prevents weird effects in live previews due to incomplete input",
                type: "boolean"
            },
            smartIndentationFix: {defaultValue: !1, description: "Tries to smartly fix indentation in es6 strings", type: "boolean"},
            disableForced4SpacesIndentedSublists: {
                defaultValue: !1,
                description: "Disables the requirement of indenting nested sublists by 4 spaces",
                type: "boolean"
            },
            simpleLineBreaks: {defaultValue: !1, description: "Parses simple line breaks as <br> (GFM Style)", type: "boolean"},
            requireSpaceBeforeHeadingText: {
                defaultValue: !1,
                description: "Makes adding a space between `#` and the header text mandatory (GFM Style)",
                type: "boolean"
            },
            ghMentions: {defaultValue: !1, description: "Enables github @mentions", type: "boolean"},
            ghMentionsLink: {
                defaultValue: "https://github.com/{u}",
                description: "Changes the link generated by @mentions. Only applies if ghMentions option is enabled.",
                type: "string"
            },
            encodeEmails: {
                defaultValue: !0,
                description: "Encode e-mail addresses through the use of Character Entities, transforming ASCII e-mail addresses into its equivalent decimal entities",
                type: "boolean"
            },
            openLinksInNewWindow: {defaultValue: !1, description: "Open all links in new windows", type: "boolean"},
            backslashEscapesHTMLTags: {defaultValue: !1, description: "Support for HTML Tag escaping. ex: <div>foo</div>", type: "boolean"},
            emoji: {defaultValue: !1, description: "Enable emoji support. Ex: `this is a :smile: emoji`", type: "boolean"},
            underline: {
                defaultValue: !1,
                description: "Enable support for underline. Syntax is double or triple underscores: `__underline word__`. With this option enabled, underscores no longer parses into `<em>` and `<strong>`",
                type: "boolean"
            },
            completeHTMLDocument: {
                defaultValue: !1,
                description: "Outputs a complete html document, including `<html>`, `<head>` and `<body>` tags",
                type: "boolean"
            },
            metadata: {
                defaultValue: !1,
                description: "Enable support for document metadata (defined at the top of the document between `«««` and `»»»` or between `---` and `---`).",
                type: "boolean"
            },
            splitAdjacentBlockquotes: {defaultValue: !1, description: "Split adjacent blockquote blocks", type: "boolean"}
        };
        if (!1 === g) return JSON.parse(JSON.stringify(I));
        for (C in A = {}, I) I.hasOwnProperty(C) && (A[C] = I[C].defaultValue);
        return A
    }

    function i(g, A) {
        "use strict";
        var C, I, e, r, t, a = A ? "Error in " + A + " extension->" : "Error in unnamed extension", n = {valid: !0, error: ""};
        for (m.helper.isArray(g) || (g = [g]), C = 0; C < g.length; ++C) {
            if (I = a + " sub-extension " + C + ": ", "object" != typeof(e = g[C])) return n.valid = !1, n.error = I + "must be an object, but " + typeof e + " given", n;
            if (!m.helper.isString(e.type)) return n.valid = !1, n.error = I + 'property "type" must be a string, but ' + typeof e.type + " given", n;
            if ("language" === (r = e.type = e.type.toLowerCase()) && (r = e.type = "lang"), "html" === r && (r = e.type = "output"), "lang" !== r && "output" !== r && "listener" !== r) return n.valid = !1, n.error = I + "type " + r + ' is not recognized. Valid values: "lang/language", "output/html" or "listener"', n;
            if ("listener" === r) {
                if (m.helper.isUndefined(e.listeners)) return n.valid = !1, n.error = I + '. Extensions of type "listener" must have a property called "listeners"', n
            } else if (m.helper.isUndefined(e.filter) && m.helper.isUndefined(e.regex)) return n.valid = !1, n.error = I + r + ' extensions must define either a "regex" property or a "filter" method', n;
            if (e.listeners) {
                if ("object" != typeof e.listeners) return n.valid = !1, n.error = I + '"listeners" property must be an object but ' + typeof e.listeners + " given", n;
                for (t in e.listeners) if (e.listeners.hasOwnProperty(t) && "function" != typeof e.listeners[t]) return n.valid = !1, n.error = I + '"listeners" property must be an hash of [event name]: [callback]. listeners.' + t + " must be a function but " + typeof e.listeners[t] + " given", n
            }
            if (e.filter) {
                if ("function" != typeof e.filter) return n.valid = !1, n.error = I + '"filter" must be a function, but ' + typeof e.filter + " given", n
            } else if (e.regex) {
                if (m.helper.isString(e.regex) && (e.regex = new RegExp(e.regex, "g")), !(e.regex instanceof RegExp)) return n.valid = !1, n.error = I + '"regex" property must either be a string or a RegExp object, but ' + typeof e.regex + " given", n;
                if (m.helper.isUndefined(e.replace)) return n.valid = !1, n.error = I + '"regex" extensions must implement a replace string or function', n
            }
        }
        return n
    }

    function r(g, A) {
        "use strict";
        return "¨E" + A.charCodeAt(0) + "E"
    }

    var l, e, t, a, n, o, s, c, m = {}, C = {}, u = {}, d = I(!0), p = "vanilla", h = {
        github: {
            omitExtraWLInCodeBlocks: !0,
            simplifiedAutoLink: !0,
            excludeTrailingPunctuationFromURLs: !0,
            literalMidWordUnderscores: !0,
            strikethrough: !0,
            tables: !0,
            tablesHeaderId: !0,
            ghCodeBlocks: !0,
            tasklists: !0,
            disableForced4SpacesIndentedSublists: !0,
            simpleLineBreaks: !0,
            requireSpaceBeforeHeadingText: !0,
            ghCompatibleHeaderId: !0,
            ghMentions: !0,
            backslashEscapesHTMLTags: !0,
            emoji: !0,
            splitAdjacentBlockquotes: !0
        },
        original: {noHeaderId: !0, ghCodeBlocks: !1},
        ghost: {
            omitExtraWLInCodeBlocks: !0,
            parseImgDimensions: !0,
            simplifiedAutoLink: !0,
            excludeTrailingPunctuationFromURLs: !0,
            literalMidWordUnderscores: !0,
            strikethrough: !0,
            tables: !0,
            tablesHeaderId: !0,
            ghCodeBlocks: !0,
            tasklists: !0,
            smoothLivePreview: !0,
            simpleLineBreaks: !0,
            requireSpaceBeforeHeadingText: !0,
            ghMentions: !1,
            encodeEmails: !0
        },
        vanilla: I(!0),
        allOn: function () {
            "use strict";
            var g, A = I(!0), C = {};
            for (g in A) A.hasOwnProperty(g) && (C[g] = !0);
            return C
        }()
    };
    m.helper = {}, m.extensions = {}, m.setOption = function (g, A) {
        "use strict";
        return d[g] = A, this
    }, m.getOption = function (g) {
        "use strict";
        return d[g]
    }, m.getOptions = function () {
        "use strict";
        return d
    }, m.resetOptions = function () {
        "use strict";
        d = I(!0)
    }, m.setFlavor = function (g) {
        "use strict";
        var A, C;
        if (!h.hasOwnProperty(g)) throw Error(g + " flavor was not found");
        for (C in m.resetOptions(), A = h[g], p = g, A) A.hasOwnProperty(C) && (d[C] = A[C])
    }, m.getFlavor = function () {
        "use strict";
        return p
    }, m.getFlavorOptions = function (g) {
        "use strict";
        if (h.hasOwnProperty(g)) return h[g]
    }, m.getDefaultOptions = function (g) {
        "use strict";
        return I(g)
    }, m.subParser = function (g, A) {
        "use strict";
        if (m.helper.isString(g)) {
            if (void 0 === A) {
                if (C.hasOwnProperty(g)) return C[g];
                throw Error("SubParser named " + g + " not registered!")
            }
            C[g] = A
        }
    }, m.extension = function (g, A) {
        "use strict";
        if (!m.helper.isString(g)) throw Error("Extension 'name' must be a string");
        if (g = m.helper.stdExtName(g), m.helper.isUndefined(A)) {
            if (!u.hasOwnProperty(g)) throw Error("Extension named " + g + " is not registered!");
            return u[g]
        }
        "function" == typeof A && (A = A()), m.helper.isArray(A) || (A = [A]);
        var C = i(A, g);
        if (!C.valid) throw Error(C.error);
        u[g] = A
    }, m.getAllExtensions = function () {
        "use strict";
        return u
    }, m.removeExtension = function (g) {
        "use strict";
        delete u[g]
    }, m.resetExtensions = function () {
        "use strict";
        u = {}
    }, m.validateExtension = function (g) {
        "use strict";
        var A = i(g, null);
        return !!A.valid || !1
    }, m.hasOwnProperty("helper") || (m.helper = {}), m.helper.isString = function (g) {
        "use strict";
        return "string" == typeof g || g instanceof String
    }, m.helper.isFunction = function (g) {
        "use strict";
        return g && "[object Function]" === {}.toString.call(g)
    }, m.helper.isArray = function (g) {
        "use strict";
        return Array.isArray(g)
    }, m.helper.isUndefined = function (g) {
        "use strict";
        return void 0 === g
    }, m.helper.forEach = function (g, A) {
        "use strict";
        var C, I;
        if (m.helper.isUndefined(g)) throw new Error("obj param is required");
        if (m.helper.isUndefined(A)) throw new Error("callback param is required");
        if (!m.helper.isFunction(A)) throw new Error("callback param must be a function/closure");
        if ("function" == typeof g.forEach) g.forEach(A); else if (m.helper.isArray(g)) for (C = 0; C < g.length; C++) A(g[C], C, g); else {
            if ("object" != typeof g) throw new Error("obj does not seem to be an array or an iterable object");
            for (I in g) g.hasOwnProperty(I) && A(g[I], I, g)
        }
    }, m.helper.stdExtName = function (g) {
        "use strict";
        return g.replace(/[_?*+\/\\.^-]/g, "").replace(/\s/g, "").toLowerCase()
    }, m.helper.escapeCharactersCallback = r, m.helper.escapeCharacters = function (g, A, C) {
        "use strict";
        var I, e = "([" + A.replace(/([\[\]\\])/g, "\\$1") + "])";
        return C && (e = "\\\\" + e), I = new RegExp(e, "g"), g.replace(I, r)
    };
    l = function (g, A, C, I) {
        "use strict";
        var e, r, t, a, n, o, s = I || "", i = -1 < s.indexOf("g"), l = new RegExp(A + "|" + C, "g" + s.replace(/g/g, "")),
            c = new RegExp(A, s.replace(/g/g, "")), u = [];
        do {
            for (e = 0; t = l.exec(g);) if (c.test(t[0])) e++ || (a = (r = l.lastIndex) - t[0].length); else if (e && !--e && (n = t.index + t[0].length, o = {
                left: {
                    start: a,
                    end: r
                }, match: {start: r, end: t.index}, right: {start: t.index, end: n}, wholeMatch: {start: a, end: n}
            }, u.push(o), !i)) return u
        } while (e && (l.lastIndex = r));
        return u
    }, m.helper.matchRecursiveRegExp = function (g, A, C, I) {
        "use strict";
        for (var e = l(g, A, C, I), r = [], t = 0; t < e.length; ++t) r.push([g.slice(e[t].wholeMatch.start, e[t].wholeMatch.end), g.slice(e[t].match.start, e[t].match.end), g.slice(e[t].left.start, e[t].left.end), g.slice(e[t].right.start, e[t].right.end)]);
        return r
    }, m.helper.replaceRecursiveRegExp = function (g, A, C, I, e) {
        "use strict";
        var r, t, a, n, o, s;
        if (m.helper.isFunction(A) || (r = A, A = function () {
            return r
        }), 0 < (n = (t = l(a = g, C, I, e)).length)) {
            for (o = [], 0 !== t[0].wholeMatch.start && o.push(g.slice(0, t[0].wholeMatch.start)), s = 0; s < n; ++s) o.push(A(g.slice(t[s].wholeMatch.start, t[s].wholeMatch.end), g.slice(t[s].match.start, t[s].match.end), g.slice(t[s].left.start, t[s].left.end), g.slice(t[s].right.start, t[s].right.end))), s < n - 1 && o.push(g.slice(t[s].wholeMatch.end, t[s + 1].wholeMatch.start));
            t[n - 1].wholeMatch.end < g.length && o.push(g.slice(t[n - 1].wholeMatch.end)), a = o.join("")
        }
        return a
    }, m.helper.regexIndexOf = function (g, A, C) {
        "use strict";
        if (!m.helper.isString(g)) throw"InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string";
        if (A instanceof RegExp == 0) throw"InvalidArgumentError: second parameter of showdown.helper.regexIndexOf function must be an instance of RegExp";
        var I = g.substring(C || 0).search(A);
        return 0 <= I ? I + (C || 0) : I
    }, m.helper.splitAtIndex = function (g, A) {
        "use strict";
        if (!m.helper.isString(g)) throw"InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string";
        return [g.substring(0, A), g.substring(A)]
    }, m.helper.encodeEmailAddress = function (g) {
        "use strict";
        var C = [function (g) {
            return "&#" + g.charCodeAt(0) + ";"
        }, function (g) {
            return "&#x" + g.charCodeAt(0).toString(16) + ";"
        }, function (g) {
            return g
        }];
        return g.replace(/./g, function (g) {
            if ("@" === g) g = C[Math.floor(2 * Math.random())](g); else {
                var A = Math.random();
                g = .9 < A ? C[2](g) : .45 < A ? C[1](g) : C[0](g)
            }
            return g
        })
    }, "undefined" == typeof console && (console = {
        warn: function (g) {
            "use strict";
            alert(g)
        }, log: function (g) {
            "use strict";
            alert(g)
        }, error: function (g) {
            "use strict";
            throw g
        }
    }), m.helper.regexes = {asteriskDashAndColon: /([*_:~])/g}, m.helper.emojis = {
        "+1": "👍",
        "-1": "👎",
        100: "💯",
        1234: "🔢",
        "1st_place_medal": "🥇",
        "2nd_place_medal": "🥈",
        "3rd_place_medal": "🥉",
        "8ball": "🎱",
        a: "🅰️",
        ab: "🆎",
        abc: "🔤",
        abcd: "🔡",
        accept: "🉑",
        aerial_tramway: "🚡",
        airplane: "✈️",
        alarm_clock: "⏰",
        alembic: "⚗️",
        alien: "👽",
        ambulance: "🚑",
        amphora: "🏺",
        anchor: "⚓️",
        angel: "👼",
        anger: "💢",
        angry: "😠",
        anguished: "😧",
        ant: "🐜",
        apple: "🍎",
        aquarius: "♒️",
        aries: "♈️",
        arrow_backward: "◀️",
        arrow_double_down: "⏬",
        arrow_double_up: "⏫",
        arrow_down: "⬇️",
        arrow_down_small: "🔽",
        arrow_forward: "▶️",
        arrow_heading_down: "⤵️",
        arrow_heading_up: "⤴️",
        arrow_left: "⬅️",
        arrow_lower_left: "↙️",
        arrow_lower_right: "↘️",
        arrow_right: "➡️",
        arrow_right_hook: "↪️",
        arrow_up: "⬆️",
        arrow_up_down: "↕️",
        arrow_up_small: "🔼",
        arrow_upper_left: "↖️",
        arrow_upper_right: "↗️",
        arrows_clockwise: "🔃",
        arrows_counterclockwise: "🔄",
        art: "🎨",
        articulated_lorry: "🚛",
        artificial_satellite: "🛰",
        astonished: "😲",
        athletic_shoe: "👟",
        atm: "🏧",
        atom_symbol: "⚛️",
        avocado: "🥑",
        b: "🅱️",
        baby: "👶",
        baby_bottle: "🍼",
        baby_chick: "🐤",
        baby_symbol: "🚼",
        back: "🔙",
        bacon: "🥓",
        badminton: "🏸",
        baggage_claim: "🛄",
        baguette_bread: "🥖",
        balance_scale: "⚖️",
        balloon: "🎈",
        ballot_box: "🗳",
        ballot_box_with_check: "☑️",
        bamboo: "🎍",
        banana: "🍌",
        bangbang: "‼️",
        bank: "🏦",
        bar_chart: "📊",
        barber: "💈",
        baseball: "⚾️",
        basketball: "🏀",
        basketball_man: "⛹️",
        basketball_woman: "⛹️&zwj;♀️",
        bat: "🦇",
        bath: "🛀",
        bathtub: "🛁",
        battery: "🔋",
        beach_umbrella: "🏖",
        bear: "🐻",
        bed: "🛏",
        bee: "🐝",
        beer: "🍺",
        beers: "🍻",
        beetle: "🐞",
        beginner: "🔰",
        bell: "🔔",
        bellhop_bell: "🛎",
        bento: "🍱",
        biking_man: "🚴",
        bike: "🚲",
        biking_woman: "🚴&zwj;♀️",
        bikini: "👙",
        biohazard: "☣️",
        bird: "🐦",
        birthday: "🎂",
        black_circle: "⚫️",
        black_flag: "🏴",
        black_heart: "🖤",
        black_joker: "🃏",
        black_large_square: "⬛️",
        black_medium_small_square: "◾️",
        black_medium_square: "◼️",
        black_nib: "✒️",
        black_small_square: "▪️",
        black_square_button: "🔲",
        blonde_man: "👱",
        blonde_woman: "👱&zwj;♀️",
        blossom: "🌼",
        blowfish: "🐡",
        blue_book: "📘",
        blue_car: "🚙",
        blue_heart: "💙",
        blush: "😊",
        boar: "🐗",
        boat: "⛵️",
        bomb: "💣",
        book: "📖",
        bookmark: "🔖",
        bookmark_tabs: "📑",
        books: "📚",
        boom: "💥",
        boot: "👢",
        bouquet: "💐",
        bowing_man: "🙇",
        bow_and_arrow: "🏹",
        bowing_woman: "🙇&zwj;♀️",
        bowling: "🎳",
        boxing_glove: "🥊",
        boy: "👦",
        bread: "🍞",
        bride_with_veil: "👰",
        bridge_at_night: "🌉",
        briefcase: "💼",
        broken_heart: "💔",
        bug: "🐛",
        building_construction: "🏗",
        bulb: "💡",
        bullettrain_front: "🚅",
        bullettrain_side: "🚄",
        burrito: "🌯",
        bus: "🚌",
        business_suit_levitating: "🕴",
        busstop: "🚏",
        bust_in_silhouette: "👤",
        busts_in_silhouette: "👥",
        butterfly: "🦋",
        cactus: "🌵",
        cake: "🍰",
        calendar: "📆",
        call_me_hand: "🤙",
        calling: "📲",
        camel: "🐫",
        camera: "📷",
        camera_flash: "📸",
        camping: "🏕",
        cancer: "♋️",
        candle: "🕯",
        candy: "🍬",
        canoe: "🛶",
        capital_abcd: "🔠",
        capricorn: "♑️",
        car: "🚗",
        card_file_box: "🗃",
        card_index: "📇",
        card_index_dividers: "🗂",
        carousel_horse: "🎠",
        carrot: "🥕",
        cat: "🐱",
        cat2: "🐈",
        cd: "💿",
        chains: "⛓",
        champagne: "🍾",
        chart: "💹",
        chart_with_downwards_trend: "📉",
        chart_with_upwards_trend: "📈",
        checkered_flag: "🏁",
        cheese: "🧀",
        cherries: "🍒",
        cherry_blossom: "🌸",
        chestnut: "🌰",
        chicken: "🐔",
        children_crossing: "🚸",
        chipmunk: "🐿",
        chocolate_bar: "🍫",
        christmas_tree: "🎄",
        church: "⛪️",
        cinema: "🎦",
        circus_tent: "🎪",
        city_sunrise: "🌇",
        city_sunset: "🌆",
        cityscape: "🏙",
        cl: "🆑",
        clamp: "🗜",
        clap: "👏",
        clapper: "🎬",
        classical_building: "🏛",
        clinking_glasses: "🥂",
        clipboard: "📋",
        clock1: "🕐",
        clock10: "🕙",
        clock1030: "🕥",
        clock11: "🕚",
        clock1130: "🕦",
        clock12: "🕛",
        clock1230: "🕧",
        clock130: "🕜",
        clock2: "🕑",
        clock230: "🕝",
        clock3: "🕒",
        clock330: "🕞",
        clock4: "🕓",
        clock430: "🕟",
        clock5: "🕔",
        clock530: "🕠",
        clock6: "🕕",
        clock630: "🕡",
        clock7: "🕖",
        clock730: "🕢",
        clock8: "🕗",
        clock830: "🕣",
        clock9: "🕘",
        clock930: "🕤",
        closed_book: "📕",
        closed_lock_with_key: "🔐",
        closed_umbrella: "🌂",
        cloud: "☁️",
        cloud_with_lightning: "🌩",
        cloud_with_lightning_and_rain: "⛈",
        cloud_with_rain: "🌧",
        cloud_with_snow: "🌨",
        clown_face: "🤡",
        clubs: "♣️",
        cocktail: "🍸",
        coffee: "☕️",
        coffin: "⚰️",
        cold_sweat: "😰",
        comet: "☄️",
        computer: "💻",
        computer_mouse: "🖱",
        confetti_ball: "🎊",
        confounded: "😖",
        confused: "😕",
        congratulations: "㊗️",
        construction: "🚧",
        construction_worker_man: "👷",
        construction_worker_woman: "👷&zwj;♀️",
        control_knobs: "🎛",
        convenience_store: "🏪",
        cookie: "🍪",
        cool: "🆒",
        policeman: "👮",
        copyright: "©️",
        corn: "🌽",
        couch_and_lamp: "🛋",
        couple: "👫",
        couple_with_heart_woman_man: "💑",
        couple_with_heart_man_man: "👨&zwj;❤️&zwj;👨",
        couple_with_heart_woman_woman: "👩&zwj;❤️&zwj;👩",
        couplekiss_man_man: "👨&zwj;❤️&zwj;💋&zwj;👨",
        couplekiss_man_woman: "💏",
        couplekiss_woman_woman: "👩&zwj;❤️&zwj;💋&zwj;👩",
        cow: "🐮",
        cow2: "🐄",
        cowboy_hat_face: "🤠",
        crab: "🦀",
        crayon: "🖍",
        credit_card: "💳",
        crescent_moon: "🌙",
        cricket: "🏏",
        crocodile: "🐊",
        croissant: "🥐",
        crossed_fingers: "🤞",
        crossed_flags: "🎌",
        crossed_swords: "⚔️",
        crown: "👑",
        cry: "😢",
        crying_cat_face: "😿",
        crystal_ball: "🔮",
        cucumber: "🥒",
        cupid: "💘",
        curly_loop: "➰",
        currency_exchange: "💱",
        curry: "🍛",
        custard: "🍮",
        customs: "🛃",
        cyclone: "🌀",
        dagger: "🗡",
        dancer: "💃",
        dancing_women: "👯",
        dancing_men: "👯&zwj;♂️",
        dango: "🍡",
        dark_sunglasses: "🕶",
        dart: "🎯",
        dash: "💨",
        date: "📅",
        deciduous_tree: "🌳",
        deer: "🦌",
        department_store: "🏬",
        derelict_house: "🏚",
        desert: "🏜",
        desert_island: "🏝",
        desktop_computer: "🖥",
        male_detective: "🕵️",
        diamond_shape_with_a_dot_inside: "💠",
        diamonds: "♦️",
        disappointed: "😞",
        disappointed_relieved: "😥",
        dizzy: "💫",
        dizzy_face: "😵",
        do_not_litter: "🚯",
        dog: "🐶",
        dog2: "🐕",
        dollar: "💵",
        dolls: "🎎",
        dolphin: "🐬",
        door: "🚪",
        doughnut: "🍩",
        dove: "🕊",
        dragon: "🐉",
        dragon_face: "🐲",
        dress: "👗",
        dromedary_camel: "🐪",
        drooling_face: "🤤",
        droplet: "💧",
        drum: "🥁",
        duck: "🦆",
        dvd: "📀",
        "e-mail": "📧",
        eagle: "🦅",
        ear: "👂",
        ear_of_rice: "🌾",
        earth_africa: "🌍",
        earth_americas: "🌎",
        earth_asia: "🌏",
        egg: "🥚",
        eggplant: "🍆",
        eight_pointed_black_star: "✴️",
        eight_spoked_asterisk: "✳️",
        electric_plug: "🔌",
        elephant: "🐘",
        email: "✉️",
        end: "🔚",
        envelope_with_arrow: "📩",
        euro: "💶",
        european_castle: "🏰",
        european_post_office: "🏤",
        evergreen_tree: "🌲",
        exclamation: "❗️",
        expressionless: "😑",
        eye: "👁",
        eye_speech_bubble: "👁&zwj;🗨",
        eyeglasses: "👓",
        eyes: "👀",
        face_with_head_bandage: "🤕",
        face_with_thermometer: "🤒",
        fist_oncoming: "👊",
        factory: "🏭",
        fallen_leaf: "🍂",
        family_man_woman_boy: "👪",
        family_man_boy: "👨&zwj;👦",
        family_man_boy_boy: "👨&zwj;👦&zwj;👦",
        family_man_girl: "👨&zwj;👧",
        family_man_girl_boy: "👨&zwj;👧&zwj;👦",
        family_man_girl_girl: "👨&zwj;👧&zwj;👧",
        family_man_man_boy: "👨&zwj;👨&zwj;👦",
        family_man_man_boy_boy: "👨&zwj;👨&zwj;👦&zwj;👦",
        family_man_man_girl: "👨&zwj;👨&zwj;👧",
        family_man_man_girl_boy: "👨&zwj;👨&zwj;👧&zwj;👦",
        family_man_man_girl_girl: "👨&zwj;👨&zwj;👧&zwj;👧",
        family_man_woman_boy_boy: "👨&zwj;👩&zwj;👦&zwj;👦",
        family_man_woman_girl: "👨&zwj;👩&zwj;👧",
        family_man_woman_girl_boy: "👨&zwj;👩&zwj;👧&zwj;👦",
        family_man_woman_girl_girl: "👨&zwj;👩&zwj;👧&zwj;👧",
        family_woman_boy: "👩&zwj;👦",
        family_woman_boy_boy: "👩&zwj;👦&zwj;👦",
        family_woman_girl: "👩&zwj;👧",
        family_woman_girl_boy: "👩&zwj;👧&zwj;👦",
        family_woman_girl_girl: "👩&zwj;👧&zwj;👧",
        family_woman_woman_boy: "👩&zwj;👩&zwj;👦",
        family_woman_woman_boy_boy: "👩&zwj;👩&zwj;👦&zwj;👦",
        family_woman_woman_girl: "👩&zwj;👩&zwj;👧",
        family_woman_woman_girl_boy: "👩&zwj;👩&zwj;👧&zwj;👦",
        family_woman_woman_girl_girl: "👩&zwj;👩&zwj;👧&zwj;👧",
        fast_forward: "⏩",
        fax: "📠",
        fearful: "😨",
        feet: "🐾",
        female_detective: "🕵️&zwj;♀️",
        ferris_wheel: "🎡",
        ferry: "⛴",
        field_hockey: "🏑",
        file_cabinet: "🗄",
        file_folder: "📁",
        film_projector: "📽",
        film_strip: "🎞",
        fire: "🔥",
        fire_engine: "🚒",
        fireworks: "🎆",
        first_quarter_moon: "🌓",
        first_quarter_moon_with_face: "🌛",
        fish: "🐟",
        fish_cake: "🍥",
        fishing_pole_and_fish: "🎣",
        fist_raised: "✊",
        fist_left: "🤛",
        fist_right: "🤜",
        flags: "🎏",
        flashlight: "🔦",
        fleur_de_lis: "⚜️",
        flight_arrival: "🛬",
        flight_departure: "🛫",
        floppy_disk: "💾",
        flower_playing_cards: "🎴",
        flushed: "😳",
        fog: "🌫",
        foggy: "🌁",
        football: "🏈",
        footprints: "👣",
        fork_and_knife: "🍴",
        fountain: "⛲️",
        fountain_pen: "🖋",
        four_leaf_clover: "🍀",
        fox_face: "🦊",
        framed_picture: "🖼",
        free: "🆓",
        fried_egg: "🍳",
        fried_shrimp: "🍤",
        fries: "🍟",
        frog: "🐸",
        frowning: "😦",
        frowning_face: "☹️",
        frowning_man: "🙍&zwj;♂️",
        frowning_woman: "🙍",
        middle_finger: "🖕",
        fuelpump: "⛽️",
        full_moon: "🌕",
        full_moon_with_face: "🌝",
        funeral_urn: "⚱️",
        game_die: "🎲",
        gear: "⚙️",
        gem: "💎",
        gemini: "♊️",
        ghost: "👻",
        gift: "🎁",
        gift_heart: "💝",
        girl: "👧",
        globe_with_meridians: "🌐",
        goal_net: "🥅",
        goat: "🐐",
        golf: "⛳️",
        golfing_man: "🏌️",
        golfing_woman: "🏌️&zwj;♀️",
        gorilla: "🦍",
        grapes: "🍇",
        green_apple: "🍏",
        green_book: "📗",
        green_heart: "💚",
        green_salad: "🥗",
        grey_exclamation: "❕",
        grey_question: "❔",
        grimacing: "😬",
        grin: "😁",
        grinning: "😀",
        guardsman: "💂",
        guardswoman: "💂&zwj;♀️",
        guitar: "🎸",
        gun: "🔫",
        haircut_woman: "💇",
        haircut_man: "💇&zwj;♂️",
        hamburger: "🍔",
        hammer: "🔨",
        hammer_and_pick: "⚒",
        hammer_and_wrench: "🛠",
        hamster: "🐹",
        hand: "✋",
        handbag: "👜",
        handshake: "🤝",
        hankey: "💩",
        hatched_chick: "🐥",
        hatching_chick: "🐣",
        headphones: "🎧",
        hear_no_evil: "🙉",
        heart: "❤️",
        heart_decoration: "💟",
        heart_eyes: "😍",
        heart_eyes_cat: "😻",
        heartbeat: "💓",
        heartpulse: "💗",
        hearts: "♥️",
        heavy_check_mark: "✔️",
        heavy_division_sign: "➗",
        heavy_dollar_sign: "💲",
        heavy_heart_exclamation: "❣️",
        heavy_minus_sign: "➖",
        heavy_multiplication_x: "✖️",
        heavy_plus_sign: "➕",
        helicopter: "🚁",
        herb: "🌿",
        hibiscus: "🌺",
        high_brightness: "🔆",
        high_heel: "👠",
        hocho: "🔪",
        hole: "🕳",
        honey_pot: "🍯",
        horse: "🐴",
        horse_racing: "🏇",
        hospital: "🏥",
        hot_pepper: "🌶",
        hotdog: "🌭",
        hotel: "🏨",
        hotsprings: "♨️",
        hourglass: "⌛️",
        hourglass_flowing_sand: "⏳",
        house: "🏠",
        house_with_garden: "🏡",
        houses: "🏘",
        hugs: "🤗",
        hushed: "😯",
        ice_cream: "🍨",
        ice_hockey: "🏒",
        ice_skate: "⛸",
        icecream: "🍦",
        id: "🆔",
        ideograph_advantage: "🉐",
        imp: "👿",
        inbox_tray: "📥",
        incoming_envelope: "📨",
        tipping_hand_woman: "💁",
        information_source: "ℹ️",
        innocent: "😇",
        interrobang: "⁉️",
        iphone: "📱",
        izakaya_lantern: "🏮",
        jack_o_lantern: "🎃",
        japan: "🗾",
        japanese_castle: "🏯",
        japanese_goblin: "👺",
        japanese_ogre: "👹",
        jeans: "👖",
        joy: "😂",
        joy_cat: "😹",
        joystick: "🕹",
        kaaba: "🕋",
        key: "🔑",
        keyboard: "⌨️",
        keycap_ten: "🔟",
        kick_scooter: "🛴",
        kimono: "👘",
        kiss: "💋",
        kissing: "😗",
        kissing_cat: "😽",
        kissing_closed_eyes: "😚",
        kissing_heart: "😘",
        kissing_smiling_eyes: "😙",
        kiwi_fruit: "🥝",
        koala: "🐨",
        koko: "🈁",
        label: "🏷",
        large_blue_circle: "🔵",
        large_blue_diamond: "🔷",
        large_orange_diamond: "🔶",
        last_quarter_moon: "🌗",
        last_quarter_moon_with_face: "🌜",
        latin_cross: "✝️",
        laughing: "😆",
        leaves: "🍃",
        ledger: "📒",
        left_luggage: "🛅",
        left_right_arrow: "↔️",
        leftwards_arrow_with_hook: "↩️",
        lemon: "🍋",
        leo: "♌️",
        leopard: "🐆",
        level_slider: "🎚",
        libra: "♎️",
        light_rail: "🚈",
        link: "🔗",
        lion: "🦁",
        lips: "👄",
        lipstick: "💄",
        lizard: "🦎",
        lock: "🔒",
        lock_with_ink_pen: "🔏",
        lollipop: "🍭",
        loop: "➿",
        loud_sound: "🔊",
        loudspeaker: "📢",
        love_hotel: "🏩",
        love_letter: "💌",
        low_brightness: "🔅",
        lying_face: "🤥",
        m: "Ⓜ️",
        mag: "🔍",
        mag_right: "🔎",
        mahjong: "🀄️",
        mailbox: "📫",
        mailbox_closed: "📪",
        mailbox_with_mail: "📬",
        mailbox_with_no_mail: "📭",
        man: "👨",
        man_artist: "👨&zwj;🎨",
        man_astronaut: "👨&zwj;🚀",
        man_cartwheeling: "🤸&zwj;♂️",
        man_cook: "👨&zwj;🍳",
        man_dancing: "🕺",
        man_facepalming: "🤦&zwj;♂️",
        man_factory_worker: "👨&zwj;🏭",
        man_farmer: "👨&zwj;🌾",
        man_firefighter: "👨&zwj;🚒",
        man_health_worker: "👨&zwj;⚕️",
        man_in_tuxedo: "🤵",
        man_judge: "👨&zwj;⚖️",
        man_juggling: "🤹&zwj;♂️",
        man_mechanic: "👨&zwj;🔧",
        man_office_worker: "👨&zwj;💼",
        man_pilot: "👨&zwj;✈️",
        man_playing_handball: "🤾&zwj;♂️",
        man_playing_water_polo: "🤽&zwj;♂️",
        man_scientist: "👨&zwj;🔬",
        man_shrugging: "🤷&zwj;♂️",
        man_singer: "👨&zwj;🎤",
        man_student: "👨&zwj;🎓",
        man_teacher: "👨&zwj;🏫",
        man_technologist: "👨&zwj;💻",
        man_with_gua_pi_mao: "👲",
        man_with_turban: "👳",
        tangerine: "🍊",
        mans_shoe: "👞",
        mantelpiece_clock: "🕰",
        maple_leaf: "🍁",
        martial_arts_uniform: "🥋",
        mask: "😷",
        massage_woman: "💆",
        massage_man: "💆&zwj;♂️",
        meat_on_bone: "🍖",
        medal_military: "🎖",
        medal_sports: "🏅",
        mega: "📣",
        melon: "🍈",
        memo: "📝",
        men_wrestling: "🤼&zwj;♂️",
        menorah: "🕎",
        mens: "🚹",
        metal: "🤘",
        metro: "🚇",
        microphone: "🎤",
        microscope: "🔬",
        milk_glass: "🥛",
        milky_way: "🌌",
        minibus: "🚐",
        minidisc: "💽",
        mobile_phone_off: "📴",
        money_mouth_face: "🤑",
        money_with_wings: "💸",
        moneybag: "💰",
        monkey: "🐒",
        monkey_face: "🐵",
        monorail: "🚝",
        moon: "🌔",
        mortar_board: "🎓",
        mosque: "🕌",
        motor_boat: "🛥",
        motor_scooter: "🛵",
        motorcycle: "🏍",
        motorway: "🛣",
        mount_fuji: "🗻",
        mountain: "⛰",
        mountain_biking_man: "🚵",
        mountain_biking_woman: "🚵&zwj;♀️",
        mountain_cableway: "🚠",
        mountain_railway: "🚞",
        mountain_snow: "🏔",
        mouse: "🐭",
        mouse2: "🐁",
        movie_camera: "🎥",
        moyai: "🗿",
        mrs_claus: "🤶",
        muscle: "💪",
        mushroom: "🍄",
        musical_keyboard: "🎹",
        musical_note: "🎵",
        musical_score: "🎼",
        mute: "🔇",
        nail_care: "💅",
        name_badge: "📛",
        national_park: "🏞",
        nauseated_face: "🤢",
        necktie: "👔",
        negative_squared_cross_mark: "❎",
        nerd_face: "🤓",
        neutral_face: "😐",
        new: "🆕",
        new_moon: "🌑",
        new_moon_with_face: "🌚",
        newspaper: "📰",
        newspaper_roll: "🗞",
        next_track_button: "⏭",
        ng: "🆖",
        no_good_man: "🙅&zwj;♂️",
        no_good_woman: "🙅",
        night_with_stars: "🌃",
        no_bell: "🔕",
        no_bicycles: "🚳",
        no_entry: "⛔️",
        no_entry_sign: "🚫",
        no_mobile_phones: "📵",
        no_mouth: "😶",
        no_pedestrians: "🚷",
        no_smoking: "🚭",
        "non-potable_water": "🚱",
        nose: "👃",
        notebook: "📓",
        notebook_with_decorative_cover: "📔",
        notes: "🎶",
        nut_and_bolt: "🔩",
        o: "⭕️",
        o2: "🅾️",
        ocean: "🌊",
        octopus: "🐙",
        oden: "🍢",
        office: "🏢",
        oil_drum: "🛢",
        ok: "🆗",
        ok_hand: "👌",
        ok_man: "🙆&zwj;♂️",
        ok_woman: "🙆",
        old_key: "🗝",
        older_man: "👴",
        older_woman: "👵",
        om: "🕉",
        on: "🔛",
        oncoming_automobile: "🚘",
        oncoming_bus: "🚍",
        oncoming_police_car: "🚔",
        oncoming_taxi: "🚖",
        open_file_folder: "📂",
        open_hands: "👐",
        open_mouth: "😮",
        open_umbrella: "☂️",
        ophiuchus: "⛎",
        orange_book: "📙",
        orthodox_cross: "☦️",
        outbox_tray: "📤",
        owl: "🦉",
        ox: "🐂",
        package: "📦",
        page_facing_up: "📄",
        page_with_curl: "📃",
        pager: "📟",
        paintbrush: "🖌",
        palm_tree: "🌴",
        pancakes: "🥞",
        panda_face: "🐼",
        paperclip: "📎",
        paperclips: "🖇",
        parasol_on_ground: "⛱",
        parking: "🅿️",
        part_alternation_mark: "〽️",
        partly_sunny: "⛅️",
        passenger_ship: "🛳",
        passport_control: "🛂",
        pause_button: "⏸",
        peace_symbol: "☮️",
        peach: "🍑",
        peanuts: "🥜",
        pear: "🍐",
        pen: "🖊",
        pencil2: "✏️",
        penguin: "🐧",
        pensive: "😔",
        performing_arts: "🎭",
        persevere: "😣",
        person_fencing: "🤺",
        pouting_woman: "🙎",
        phone: "☎️",
        pick: "⛏",
        pig: "🐷",
        pig2: "🐖",
        pig_nose: "🐽",
        pill: "💊",
        pineapple: "🍍",
        ping_pong: "🏓",
        pisces: "♓️",
        pizza: "🍕",
        place_of_worship: "🛐",
        plate_with_cutlery: "🍽",
        play_or_pause_button: "⏯",
        point_down: "👇",
        point_left: "👈",
        point_right: "👉",
        point_up: "☝️",
        point_up_2: "👆",
        police_car: "🚓",
        policewoman: "👮&zwj;♀️",
        poodle: "🐩",
        popcorn: "🍿",
        post_office: "🏣",
        postal_horn: "📯",
        postbox: "📮",
        potable_water: "🚰",
        potato: "🥔",
        pouch: "👝",
        poultry_leg: "🍗",
        pound: "💷",
        rage: "😡",
        pouting_cat: "😾",
        pouting_man: "🙎&zwj;♂️",
        pray: "🙏",
        prayer_beads: "📿",
        pregnant_woman: "🤰",
        previous_track_button: "⏮",
        prince: "🤴",
        princess: "👸",
        printer: "🖨",
        purple_heart: "💜",
        purse: "👛",
        pushpin: "📌",
        put_litter_in_its_place: "🚮",
        question: "❓",
        rabbit: "🐰",
        rabbit2: "🐇",
        racehorse: "🐎",
        racing_car: "🏎",
        radio: "📻",
        radio_button: "🔘",
        radioactive: "☢️",
        railway_car: "🚃",
        railway_track: "🛤",
        rainbow: "🌈",
        rainbow_flag: "🏳️&zwj;🌈",
        raised_back_of_hand: "🤚",
        raised_hand_with_fingers_splayed: "🖐",
        raised_hands: "🙌",
        raising_hand_woman: "🙋",
        raising_hand_man: "🙋&zwj;♂️",
        ram: "🐏",
        ramen: "🍜",
        rat: "🐀",
        record_button: "⏺",
        recycle: "♻️",
        red_circle: "🔴",
        registered: "®️",
        relaxed: "☺️",
        relieved: "😌",
        reminder_ribbon: "🎗",
        repeat: "🔁",
        repeat_one: "🔂",
        rescue_worker_helmet: "⛑",
        restroom: "🚻",
        revolving_hearts: "💞",
        rewind: "⏪",
        rhinoceros: "🦏",
        ribbon: "🎀",
        rice: "🍚",
        rice_ball: "🍙",
        rice_cracker: "🍘",
        rice_scene: "🎑",
        right_anger_bubble: "🗯",
        ring: "💍",
        robot: "🤖",
        rocket: "🚀",
        rofl: "🤣",
        roll_eyes: "🙄",
        roller_coaster: "🎢",
        rooster: "🐓",
        rose: "🌹",
        rosette: "🏵",
        rotating_light: "🚨",
        round_pushpin: "📍",
        rowing_man: "🚣",
        rowing_woman: "🚣&zwj;♀️",
        rugby_football: "🏉",
        running_man: "🏃",
        running_shirt_with_sash: "🎽",
        running_woman: "🏃&zwj;♀️",
        sa: "🈂️",
        sagittarius: "♐️",
        sake: "🍶",
        sandal: "👡",
        santa: "🎅",
        satellite: "📡",
        saxophone: "🎷",
        school: "🏫",
        school_satchel: "🎒",
        scissors: "✂️",
        scorpion: "🦂",
        scorpius: "♏️",
        scream: "😱",
        scream_cat: "🙀",
        scroll: "📜",
        seat: "💺",
        secret: "㊙️",
        see_no_evil: "🙈",
        seedling: "🌱",
        selfie: "🤳",
        shallow_pan_of_food: "🥘",
        shamrock: "☘️",
        shark: "🦈",
        shaved_ice: "🍧",
        sheep: "🐑",
        shell: "🐚",
        shield: "🛡",
        shinto_shrine: "⛩",
        ship: "🚢",
        shirt: "👕",
        shopping: "🛍",
        shopping_cart: "🛒",
        shower: "🚿",
        shrimp: "🦐",
        signal_strength: "📶",
        six_pointed_star: "🔯",
        ski: "🎿",
        skier: "⛷",
        skull: "💀",
        skull_and_crossbones: "☠️",
        sleeping: "😴",
        sleeping_bed: "🛌",
        sleepy: "😪",
        slightly_frowning_face: "🙁",
        slightly_smiling_face: "🙂",
        slot_machine: "🎰",
        small_airplane: "🛩",
        small_blue_diamond: "🔹",
        small_orange_diamond: "🔸",
        small_red_triangle: "🔺",
        small_red_triangle_down: "🔻",
        smile: "😄",
        smile_cat: "😸",
        smiley: "😃",
        smiley_cat: "😺",
        smiling_imp: "😈",
        smirk: "😏",
        smirk_cat: "😼",
        smoking: "🚬",
        snail: "🐌",
        snake: "🐍",
        sneezing_face: "🤧",
        snowboarder: "🏂",
        snowflake: "❄️",
        snowman: "⛄️",
        snowman_with_snow: "☃️",
        sob: "😭",
        soccer: "⚽️",
        soon: "🔜",
        sos: "🆘",
        sound: "🔉",
        space_invader: "👾",
        spades: "♠️",
        spaghetti: "🍝",
        sparkle: "❇️",
        sparkler: "🎇",
        sparkles: "✨",
        sparkling_heart: "💖",
        speak_no_evil: "🙊",
        speaker: "🔈",
        speaking_head: "🗣",
        speech_balloon: "💬",
        speedboat: "🚤",
        spider: "🕷",
        spider_web: "🕸",
        spiral_calendar: "🗓",
        spiral_notepad: "🗒",
        spoon: "🥄",
        squid: "🦑",
        stadium: "🏟",
        star: "⭐️",
        star2: "🌟",
        star_and_crescent: "☪️",
        star_of_david: "✡️",
        stars: "🌠",
        station: "🚉",
        statue_of_liberty: "🗽",
        steam_locomotive: "🚂",
        stew: "🍲",
        stop_button: "⏹",
        stop_sign: "🛑",
        stopwatch: "⏱",
        straight_ruler: "📏",
        strawberry: "🍓",
        stuck_out_tongue: "😛",
        stuck_out_tongue_closed_eyes: "😝",
        stuck_out_tongue_winking_eye: "😜",
        studio_microphone: "🎙",
        stuffed_flatbread: "🥙",
        sun_behind_large_cloud: "🌥",
        sun_behind_rain_cloud: "🌦",
        sun_behind_small_cloud: "🌤",
        sun_with_face: "🌞",
        sunflower: "🌻",
        sunglasses: "😎",
        sunny: "☀️",
        sunrise: "🌅",
        sunrise_over_mountains: "🌄",
        surfing_man: "🏄",
        surfing_woman: "🏄&zwj;♀️",
        sushi: "🍣",
        suspension_railway: "🚟",
        sweat: "😓",
        sweat_drops: "💦",
        sweat_smile: "😅",
        sweet_potato: "🍠",
        swimming_man: "🏊",
        swimming_woman: "🏊&zwj;♀️",
        symbols: "🔣",
        synagogue: "🕍",
        syringe: "💉",
        taco: "🌮",
        tada: "🎉",
        tanabata_tree: "🎋",
        taurus: "♉️",
        taxi: "🚕",
        tea: "🍵",
        telephone_receiver: "📞",
        telescope: "🔭",
        tennis: "🎾",
        tent: "⛺️",
        thermometer: "🌡",
        thinking: "🤔",
        thought_balloon: "💭",
        ticket: "🎫",
        tickets: "🎟",
        tiger: "🐯",
        tiger2: "🐅",
        timer_clock: "⏲",
        tipping_hand_man: "💁&zwj;♂️",
        tired_face: "😫",
        tm: "™️",
        toilet: "🚽",
        tokyo_tower: "🗼",
        tomato: "🍅",
        tongue: "👅",
        top: "🔝",
        tophat: "🎩",
        tornado: "🌪",
        trackball: "🖲",
        tractor: "🚜",
        traffic_light: "🚥",
        train: "🚋",
        train2: "🚆",
        tram: "🚊",
        triangular_flag_on_post: "🚩",
        triangular_ruler: "📐",
        trident: "🔱",
        triumph: "😤",
        trolleybus: "🚎",
        trophy: "🏆",
        tropical_drink: "🍹",
        tropical_fish: "🐠",
        truck: "🚚",
        trumpet: "🎺",
        tulip: "🌷",
        tumbler_glass: "🥃",
        turkey: "🦃",
        turtle: "🐢",
        tv: "📺",
        twisted_rightwards_arrows: "🔀",
        two_hearts: "💕",
        two_men_holding_hands: "👬",
        two_women_holding_hands: "👭",
        u5272: "🈹",
        u5408: "🈴",
        u55b6: "🈺",
        u6307: "🈯️",
        u6708: "🈷️",
        u6709: "🈶",
        u6e80: "🈵",
        u7121: "🈚️",
        u7533: "🈸",
        u7981: "🈲",
        u7a7a: "🈳",
        umbrella: "☔️",
        unamused: "😒",
        underage: "🔞",
        unicorn: "🦄",
        unlock: "🔓",
        up: "🆙",
        upside_down_face: "🙃",
        v: "✌️",
        vertical_traffic_light: "🚦",
        vhs: "📼",
        vibration_mode: "📳",
        video_camera: "📹",
        video_game: "🎮",
        violin: "🎻",
        virgo: "♍️",
        volcano: "🌋",
        volleyball: "🏐",
        vs: "🆚",
        vulcan_salute: "🖖",
        walking_man: "🚶",
        walking_woman: "🚶&zwj;♀️",
        waning_crescent_moon: "🌘",
        waning_gibbous_moon: "🌖",
        warning: "⚠️",
        wastebasket: "🗑",
        watch: "⌚️",
        water_buffalo: "🐃",
        watermelon: "🍉",
        wave: "👋",
        wavy_dash: "〰️",
        waxing_crescent_moon: "🌒",
        wc: "🚾",
        weary: "😩",
        wedding: "💒",
        weight_lifting_man: "🏋️",
        weight_lifting_woman: "🏋️&zwj;♀️",
        whale: "🐳",
        whale2: "🐋",
        wheel_of_dharma: "☸️",
        wheelchair: "♿️",
        white_check_mark: "✅",
        white_circle: "⚪️",
        white_flag: "🏳️",
        white_flower: "💮",
        white_large_square: "⬜️",
        white_medium_small_square: "◽️",
        white_medium_square: "◻️",
        white_small_square: "▫️",
        white_square_button: "🔳",
        wilted_flower: "🥀",
        wind_chime: "🎐",
        wind_face: "🌬",
        wine_glass: "🍷",
        wink: "😉",
        wolf: "🐺",
        woman: "👩",
        woman_artist: "👩&zwj;🎨",
        woman_astronaut: "👩&zwj;🚀",
        woman_cartwheeling: "🤸&zwj;♀️",
        woman_cook: "👩&zwj;🍳",
        woman_facepalming: "🤦&zwj;♀️",
        woman_factory_worker: "👩&zwj;🏭",
        woman_farmer: "👩&zwj;🌾",
        woman_firefighter: "👩&zwj;🚒",
        woman_health_worker: "👩&zwj;⚕️",
        woman_judge: "👩&zwj;⚖️",
        woman_juggling: "🤹&zwj;♀️",
        woman_mechanic: "👩&zwj;🔧",
        woman_office_worker: "👩&zwj;💼",
        woman_pilot: "👩&zwj;✈️",
        woman_playing_handball: "🤾&zwj;♀️",
        woman_playing_water_polo: "🤽&zwj;♀️",
        woman_scientist: "👩&zwj;🔬",
        woman_shrugging: "🤷&zwj;♀️",
        woman_singer: "👩&zwj;🎤",
        woman_student: "👩&zwj;🎓",
        woman_teacher: "👩&zwj;🏫",
        woman_technologist: "👩&zwj;💻",
        woman_with_turban: "👳&zwj;♀️",
        womans_clothes: "👚",
        womans_hat: "👒",
        women_wrestling: "🤼&zwj;♀️",
        womens: "🚺",
        world_map: "🗺",
        worried: "😟",
        wrench: "🔧",
        writing_hand: "✍️",
        x: "❌",
        yellow_heart: "💛",
        yen: "💴",
        yin_yang: "☯️",
        yum: "😋",
        zap: "⚡️",
        zipper_mouth_face: "🤐",
        zzz: "💤",
        octocat: '<img width="20" height="20" align="absmiddle" src="">',
        showdown: '<img width="20" height="20" align="absmiddle" src="">'
    }, m.Converter = function (C) {
        "use strict";

        function I(g, A) {
            var C, I, e;
            if (A = A || null, m.helper.isString(g)) {
                if (A = g = m.helper.stdExtName(g), m.extensions[g]) return void function (g, A) {
                    var C, I;
                    if ("function" == typeof g && (g = g(new m.Converter)), m.helper.isArray(g) || (g = [g]), !(C = i(g, A)).valid) throw Error(C.error);
                    for (I = 0; I < g.length; ++I) switch (g[I].type) {
                        case"lang":
                            a.push(g[I]);
                            break;
                        case"output":
                            n.push(g[I]);
                            break;
                        default:
                            throw Error("Extension loader error: Type unrecognized!!!")
                    }
                }(m.extensions[g], g);
                if (m.helper.isUndefined(u[g])) throw Error('Extension "' + g + '" could not be loaded. It was either not found or is not a valid extension.');
                g = u[g]
            }
            if ("function" == typeof g && (g = g()), m.helper.isArray(g) || (g = [g]), !(C = i(g, A)).valid) throw Error(C.error);
            for (I = 0; I < g.length; ++I) {
                switch (g[I].type) {
                    case"lang":
                        a.push(g[I]);
                        break;
                    case"output":
                        n.push(g[I])
                }
                if (g[I].hasOwnProperty("listeners")) for (e in g[I].listeners) g[I].listeners.hasOwnProperty(e) && r(e, g[I].listeners[e])
            }
        }

        function r(g, A) {
            if (!m.helper.isString(g)) throw Error("Invalid argument in converter.listen() method: name must be a string, but " + typeof g + " given");
            if ("function" != typeof A) throw Error("Invalid argument in converter.listen() method: callback must be a function, but " + typeof A + " given");
            o.hasOwnProperty(g) || (o[g] = []), o[g].push(A)
        }

        var t = {}, a = [], n = [], o = {}, e = p, s = {parsed: {}, raw: "", format: ""};
        !function () {
            var g, A;
            for (g in C = C || {}, d) d.hasOwnProperty(g) && (t[g] = d[g]);
            if ("object" != typeof C) throw Error("Converter expects the passed parameter to be an object, but " + typeof C + " was passed instead.");
            for (A in C) C.hasOwnProperty(A) && (t[A] = C[A]);
            t.extensions && m.helper.forEach(t.extensions, I)
        }(), this._dispatch = function (g, A, C, I) {
            var e, r;
            if (o.hasOwnProperty(g)) for (e = 0; e < o[g].length; ++e) (r = o[g][e](g, A, this, C, I)) && void 0 !== r && (A = r);
            return A
        }, this.listen = function (g, A) {
            return r(g, A), this
        }, this.makeHtml = function (A) {
            if (!A) return A;
            var g, C, I, e = {
                gHtmlBlocks: [],
                gHtmlMdBlocks: [],
                gHtmlSpans: [],
                gUrls: {},
                gTitles: {},
                gDimensions: {},
                gListLevel: 0,
                hashLinkCounts: {},
                langExtensions: a,
                outputModifiers: n,
                converter: this,
                ghCodeBlocks: [],
                metadata: {parsed: {}, raw: "", format: ""}
            };
            return A = (A = (A = (A = (A = A.replace(/¨/g, "¨T")).replace(/\$/g, "¨D")).replace(/\r\n/g, "\n")).replace(/\r/g, "\n")).replace(/\u00A0/g, " "), t.smartIndentationFix && (C = (g = A).match(/^\s*/)[0].length, I = new RegExp("^\\s{0," + C + "}", "gm"), A = g.replace(I, "")), A = "\n\n" + A + "\n\n", A = (A = m.subParser("detab")(A, t, e)).replace(/^[ \t]+$/gm, ""), m.helper.forEach(a, function (g) {
                A = m.subParser("runExtension")(g, A, t, e)
            }), A = m.subParser("metadata")(A, t, e), A = m.subParser("hashPreCodeTags")(A, t, e), A = m.subParser("githubCodeBlocks")(A, t, e), A = m.subParser("hashHTMLBlocks")(A, t, e), A = m.subParser("hashCodeTags")(A, t, e), A = m.subParser("stripLinkDefinitions")(A, t, e), A = m.subParser("blockGamut")(A, t, e), A = m.subParser("unhashHTMLSpans")(A, t, e), A = (A = (A = m.subParser("unescapeSpecialChars")(A, t, e)).replace(/¨D/g, "$$")).replace(/¨T/g, "¨"), A = m.subParser("completeHTMLDocument")(A, t, e), m.helper.forEach(n, function (g) {
                A = m.subParser("runExtension")(g, A, t, e)
            }), s = e.metadata, A
        }, this.setOption = function (g, A) {
            t[g] = A
        }, this.getOption = function (g) {
            return t[g]
        }, this.getOptions = function () {
            return t
        }, this.addExtension = function (g, A) {
            I(g, A = A || null)
        }, this.useExtension = function (g) {
            I(g)
        }, this.setFlavor = function (g) {
            var A, C;
            if (!h.hasOwnProperty(g)) throw Error(g + " flavor was not found");
            for (C in A = h[g], e = g, A) A.hasOwnProperty(C) && (t[C] = A[C])
        }, this.getFlavor = function () {
            return e
        }, this.removeExtension = function (g) {
            var A, C, I;
            for (m.helper.isArray(g) || (g = [g]), A = 0; A < g.length; ++A) {
                for (C = g[A], I = 0; I < a.length; ++I) a[I] === C && a[I].splice(I, 1);
                for (; 0 < n.length; ++I) n[0] === C && n[0].splice(I, 1)
            }
        }, this.getAllExtensions = function () {
            return {language: a, output: n}
        }, this.getMetadata = function (g) {
            return g ? s.raw : s.parsed
        }, this.getMetadataFormat = function () {
            return s.format
        }, this._setMetadataPair = function (g, A) {
            s.parsed[g] = A
        }, this._setMetadataFormat = function (g) {
            s.format = g
        }, this._setMetadataRaw = function (g) {
            s.raw = g
        }
    }, m.subParser("anchors", function (g, n, o) {
        "use strict";
        var A = function (g, A, C, I, e, r, t) {
            if (m.helper.isUndefined(t) && (t = ""), C = C.toLowerCase(), -1 < g.search(/\(<?\s*>? ?(['"].*['"])?\)$/m)) I = ""; else if (!I) {
                if (C || (C = A.toLowerCase().replace(/ ?\n/g, " ")), I = "#" + C, m.helper.isUndefined(o.gUrls[C])) return g;
                I = o.gUrls[C], m.helper.isUndefined(o.gTitles[C]) || (t = o.gTitles[C])
            }
            var a = '<a href="' + (I = I.replace(m.helper.regexes.asteriskDashAndColon, m.helper.escapeCharactersCallback)) + '"';
            return "" !== t && null !== t && (a += ' title="' + (t = (t = t.replace(/"/g, "&quot;")).replace(m.helper.regexes.asteriskDashAndColon, m.helper.escapeCharactersCallback)) + '"'), n.openLinksInNewWindow && !/^#/.test(I) && (a += ' target="¨E95Eblank"'), a + ">" + A + "</a>"
        };
        return g = (g = (g = (g = (g = o.converter._dispatch("anchors.before", g, n, o)).replace(/\[((?:\[[^\]]*]|[^\[\]])*)] ?(?:\n *)?\[(.*?)]()()()()/g, A)).replace(/\[((?:\[[^\]]*]|[^\[\]])*)]()[ \t]*\([ \t]?<([^>]*)>(?:[ \t]*((["'])([^"]*?)\5))?[ \t]?\)/g, A)).replace(/\[((?:\[[^\]]*]|[^\[\]])*)]()[ \t]*\([ \t]?<?([\S]+?(?:\([\S]*?\)[\S]*?)?)>?(?:[ \t]*((["'])([^"]*?)\5))?[ \t]?\)/g, A)).replace(/\[([^\[\]]+)]()()()()()/g, A), n.ghMentions && (g = g.replace(/(^|\s)(\\)?(@([a-z\d\-]+))(?=[.!?;,[\]()]|\s|$)/gim, function (g, A, C, I, e) {
            if ("\\" === C) return A + I;
            if (!m.helper.isString(n.ghMentionsLink)) throw new Error("ghMentionsLink option must be a string");
            var r = n.ghMentionsLink.replace(/\{u}/g, e), t = "";
            return n.openLinksInNewWindow && (t = ' target="¨E95Eblank"'), A + '<a href="' + r + '"' + t + ">" + I + "</a>"
        })), o.converter._dispatch("anchors.after", g, n, o)
    }), e = /([*~_]+|\b)(((https?|ftp|dict):\/\/|www\.)[^'">\s]+?\.[^'">\s]+?)()(\1)?(?=\s|$)(?!["<>])/gi, t = /([*~_]+|\b)(((https?|ftp|dict):\/\/|www\.)[^'">\s]+\.[^'">\s]+?)([.!?,()\[\]])?(\1)?(?=\s|$)(?!["<>])/gi, a = /()<(((https?|ftp|dict):\/\/|www\.)[^'">\s]+)()>()/gi, n = /(^|\s)(?:mailto:)?([A-Za-z0-9!#$%&'*+-/=?^_`{|}~.]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)(?=$|\s)/gim, o = /<()(?:mailto:)?([-.\w]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi, s = function (l) {
        "use strict";
        return function (g, A, C, I, e, r, t) {
            var a = C = C.replace(m.helper.regexes.asteriskDashAndColon, m.helper.escapeCharactersCallback), n = "", o = "", s = A || "",
                i = t || "";
            return /^www\./i.test(C) && (C = C.replace(/^www\./i, "http://www.")), l.excludeTrailingPunctuationFromURLs && r && (n = r), l.openLinksInNewWindow && (o = ' target="¨E95Eblank"'), s + '<a href="' + C + '"' + o + ">" + a + "</a>" + n + i
        }
    }, c = function (e, r) {
        "use strict";
        return function (g, A, C) {
            var I = "mailto:";
            return A = A || "", C = m.subParser("unescapeSpecialChars")(C, e, r), e.encodeEmails ? (I = m.helper.encodeEmailAddress(I + C), C = m.helper.encodeEmailAddress(C)) : I += C, A + '<a href="' + I + '">' + C + "</a>"
        }
    }, m.subParser("autoLinks", function (g, A, C) {
        "use strict";
        return g = (g = (g = C.converter._dispatch("autoLinks.before", g, A, C)).replace(a, s(A))).replace(o, c(A, C)), C.converter._dispatch("autoLinks.after", g, A, C)
    }), m.subParser("simplifiedAutoLinks", function (g, A, C) {
        "use strict";
        return A.simplifiedAutoLink ? (g = C.converter._dispatch("simplifiedAutoLinks.before", g, A, C), g = (g = A.excludeTrailingPunctuationFromURLs ? g.replace(t, s(A)) : g.replace(e, s(A))).replace(n, c(A, C)), g = C.converter._dispatch("simplifiedAutoLinks.after", g, A, C)) : g
    }), m.subParser("blockGamut", function (g, A, C) {
        "use strict";
        return g = C.converter._dispatch("blockGamut.before", g, A, C), g = m.subParser("blockQuotes")(g, A, C), g = m.subParser("headers")(g, A, C), g = m.subParser("horizontalRule")(g, A, C), g = m.subParser("lists")(g, A, C), g = m.subParser("codeBlocks")(g, A, C), g = m.subParser("tables")(g, A, C), g = m.subParser("hashHTMLBlocks")(g, A, C), g = m.subParser("paragraphs")(g, A, C), C.converter._dispatch("blockGamut.after", g, A, C)
    }), m.subParser("blockQuotes", function (g, A, C) {
        "use strict";
        g = C.converter._dispatch("blockQuotes.before", g, A, C), g += "\n\n";
        var I = /(^ {0,3}>[ \t]?.+\n(.+\n)*\n*)+/gm;
        return A.splitAdjacentBlockquotes && (I = /^ {0,3}>[\s\S]*?(?:\n\n)/gm), g = g.replace(I, function (g) {
            return g = (g = (g = g.replace(/^[ \t]*>[ \t]?/gm, "")).replace(/¨0/g, "")).replace(/^[ \t]+$/gm, ""), g = m.subParser("githubCodeBlocks")(g, A, C), g = (g = (g = m.subParser("blockGamut")(g, A, C)).replace(/(^|\n)/g, "$1  ")).replace(/(\s*<pre>[^\r]+?<\/pre>)/gm, function (g, A) {
                var C = A;
                return (C = C.replace(/^  /gm, "¨0")).replace(/¨0/g, "")
            }), m.subParser("hashBlock")("<blockquote>\n" + g + "\n</blockquote>", A, C)
        }), C.converter._dispatch("blockQuotes.after", g, A, C)
    }), m.subParser("codeBlocks", function (g, t, a) {
        "use strict";
        return g = a.converter._dispatch("codeBlocks.before", g, t, a), g = (g = (g += "¨0").replace(/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=¨0))/g, function (g, A, C) {
            var I = A, e = C, r = "\n";
            return I = m.subParser("outdent")(I, t, a), I = m.subParser("encodeCode")(I, t, a), I = (I = (I = m.subParser("detab")(I, t, a)).replace(/^\n+/g, "")).replace(/\n+$/g, ""), t.omitExtraWLInCodeBlocks && (r = ""), I = "<pre><code>" + I + r + "</code></pre>", m.subParser("hashBlock")(I, t, a) + e
        })).replace(/¨0/, ""), a.converter._dispatch("codeBlocks.after", g, t, a)
    }), m.subParser("codeSpans", function (g, r, t) {
        "use strict";
        return void 0 === (g = t.converter._dispatch("codeSpans.before", g, r, t)) && (g = ""), g = g.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm, function (g, A, C, I) {
            var e = I;
            return e = (e = e.replace(/^([ \t]*)/g, "")).replace(/[ \t]*$/g, ""), e = A + "<code>" + (e = m.subParser("encodeCode")(e, r, t)) + "</code>", m.subParser("hashHTMLSpans")(e, r, t)
        }), t.converter._dispatch("codeSpans.after", g, r, t)
    }), m.subParser("completeHTMLDocument", function (g, A, C) {
        "use strict";
        var I, e, r, t, a, n, o;
        if (!A.completeHTMLDocument) return g;
        for (o in g = C.converter._dispatch("completeHTMLDocument.before", g, A, C), I = "html", e = "<!DOCTYPE HTML>\n", t = '<meta charset="utf-8">\n', n = a = r = "", void 0 !== C.metadata.parsed.doctype && (e = "<!DOCTYPE " + C.metadata.parsed.doctype + ">\n", "html" !== (I = C.metadata.parsed.doctype.toString().toLowerCase()) && "html5" !== I || (t = '<meta charset="utf-8">')), C.metadata.parsed) if (C.metadata.parsed.hasOwnProperty(o)) switch (o.toLowerCase()) {
            case"doctype":
                break;
            case"title":
                r = "<title>" + C.metadata.parsed.title + "</title>\n";
                break;
            case"charset":
                t = "html" === I || "html5" === I ? '<meta charset="' + C.metadata.parsed.charset + '">\n' : '<meta name="charset" content="' + C.metadata.parsed.charset + '">\n';
                break;
            case"language":
            case"lang":
                a = ' lang="' + C.metadata.parsed[o] + '"', n += '<meta name="' + o + '" content="' + C.metadata.parsed[o] + '">\n';
                break;
            default:
                n += '<meta name="' + o + '" content="' + C.metadata.parsed[o] + '">\n'
        }
        return g = e + "<html" + a + ">\n<head>\n" + r + t + n + "</head>\n<body>\n" + g.trim() + "\n</body>\n</html>", C.converter._dispatch("completeHTMLDocument.after", g, A, C)
    }), m.subParser("detab", function (g, A, C) {
        "use strict";
        return g = (g = (g = (g = (g = (g = C.converter._dispatch("detab.before", g, A, C)).replace(/\t(?=\t)/g, "    ")).replace(/\t/g, "¨A¨B")).replace(/¨B(.+?)¨A/g, function (g, A) {
            for (var C = A, I = 4 - C.length % 4, e = 0; e < I; e++) C += " ";
            return C
        })).replace(/¨A/g, "    ")).replace(/¨B/g, ""), C.converter._dispatch("detab.after", g, A, C)
    }), m.subParser("ellipsis", function (g, A, C) {
        "use strict";
        return g = (g = C.converter._dispatch("ellipsis.before", g, A, C)).replace(/\.\.\./g, "…"), C.converter._dispatch("ellipsis.after", g, A, C)
    }), m.subParser("emoji", function (g, A, C) {
        "use strict";
        return A.emoji ? (g = (g = C.converter._dispatch("emoji.before", g, A, C)).replace(/:([\S]+?):/g, function (g, A) {
            return m.helper.emojis.hasOwnProperty(A) ? m.helper.emojis[A] : g
        }), C.converter._dispatch("emoji.after", g, A, C)) : g
    }), m.subParser("encodeAmpsAndAngles", function (g, A, C) {
        "use strict";
        return g = (g = (g = (g = (g = C.converter._dispatch("encodeAmpsAndAngles.before", g, A, C)).replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g, "&amp;")).replace(/<(?![a-z\/?$!])/gi, "&lt;")).replace(/</g, "&lt;")).replace(/>/g, "&gt;"), C.converter._dispatch("encodeAmpsAndAngles.after", g, A, C)
    }), m.subParser("encodeBackslashEscapes", function (g, A, C) {
        "use strict";
        return g = (g = (g = C.converter._dispatch("encodeBackslashEscapes.before", g, A, C)).replace(/\\(\\)/g, m.helper.escapeCharactersCallback)).replace(/\\([`*_{}\[\]()>#+.!~=|-])/g, m.helper.escapeCharactersCallback), C.converter._dispatch("encodeBackslashEscapes.after", g, A, C)
    }), m.subParser("encodeCode", function (g, A, C) {
        "use strict";
        return g = (g = C.converter._dispatch("encodeCode.before", g, A, C)).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/([*_{}\[\]\\=~-])/g, m.helper.escapeCharactersCallback), C.converter._dispatch("encodeCode.after", g, A, C)
    }), m.subParser("escapeSpecialCharsWithinTagAttributes", function (g, A, C) {
        "use strict";
        return g = (g = (g = C.converter._dispatch("escapeSpecialCharsWithinTagAttributes.before", g, A, C)).replace(/<\/?[a-z\d_:-]+(?:[\s]+[\s\S]+?)?>/gi, function (g) {
            return g.replace(/(.)<\/?code>(?=.)/g, "$1`").replace(/([\\`*_~=|])/g, m.helper.escapeCharactersCallback)
        })).replace(/<!(--(?:(?:[^>-]|-[^>])(?:[^-]|-[^-])*)--)>/gi, function (g) {
            return g.replace(/([\\`*_~=|])/g, m.helper.escapeCharactersCallback)
        }), C.converter._dispatch("escapeSpecialCharsWithinTagAttributes.after", g, A, C)
    }), m.subParser("githubCodeBlocks", function (g, r, t) {
        "use strict";
        return r.ghCodeBlocks ? (g = t.converter._dispatch("githubCodeBlocks.before", g, r, t), g = (g = (g += "¨0").replace(/(?:^|\n)(```+|~~~+)([^\s`~]*)\n([\s\S]*?)\n\1/g, function (g, A, C, I) {
            var e = r.omitExtraWLInCodeBlocks ? "" : "\n";
            return I = m.subParser("encodeCode")(I, r, t), I = "<pre><code" + (C ? ' class="' + C + " language-" + C + '"' : "") + ">" + (I = (I = (I = m.subParser("detab")(I, r, t)).replace(/^\n+/g, "")).replace(/\n+$/g, "")) + e + "</code></pre>", I = m.subParser("hashBlock")(I, r, t), "\n\n¨G" + (t.ghCodeBlocks.push({
                text: g,
                codeblock: I
            }) - 1) + "G\n\n"
        })).replace(/¨0/, ""), t.converter._dispatch("githubCodeBlocks.after", g, r, t)) : g
    }), m.subParser("hashBlock", function (g, A, C) {
        "use strict";
        return g = (g = C.converter._dispatch("hashBlock.before", g, A, C)).replace(/(^\n+|\n+$)/g, ""), g = "\n\n¨K" + (C.gHtmlBlocks.push(g) - 1) + "K\n\n", C.converter._dispatch("hashBlock.after", g, A, C)
    }), m.subParser("hashCodeTags", function (g, r, t) {
        "use strict";
        return g = t.converter._dispatch("hashCodeTags.before", g, r, t), g = m.helper.replaceRecursiveRegExp(g, function (g, A, C, I) {
            var e = C + m.subParser("encodeCode")(A, r, t) + I;
            return "¨C" + (t.gHtmlSpans.push(e) - 1) + "C"
        }, "<code\\b[^>]*>", "</code>", "gim"), t.converter._dispatch("hashCodeTags.after", g, r, t)
    }), m.subParser("hashElement", function (g, A, I) {
        "use strict";
        return function (g, A) {
            var C = A;
            return C = (C = (C = C.replace(/\n\n/g, "\n")).replace(/^\n/, "")).replace(/\n+$/g, ""), "\n\n¨K" + (I.gHtmlBlocks.push(C) - 1) + "K\n\n"
        }
    }), m.subParser("hashHTMLBlocks", function (g, A, r) {
        "use strict";
        var C, I, e, t, a, n, o, s, i;
        for (g = r.converter._dispatch("hashHTMLBlocks.before", g, A, r), C = ["pre", "div", "h1", "h2", "h3", "h4", "h5", "h6", "blockquote", "table", "dl", "ol", "ul", "script", "noscript", "form", "fieldset", "iframe", "math", "style", "section", "header", "footer", "nav", "article", "aside", "address", "audio", "canvas", "figure", "hgroup", "output", "video", "p"], I = function (g, A, C, I) {
            var e = g;
            return -1 !== C.search(/\bmarkdown\b/) && (e = C + r.converter.makeHtml(A) + I), "\n\n¨K" + (r.gHtmlBlocks.push(e) - 1) + "K\n\n"
        }, A.backslashEscapesHTMLTags && (g = g.replace(/\\<(\/?[^>]+?)>/g, function (g, A) {
            return "&lt;" + A + "&gt;"
        })), e = 0; e < C.length; ++e) for (a = new RegExp("^ {0,3}(<" + C[e] + "\\b[^>]*>)", "im"), n = "<" + C[e] + "\\b[^>]*>", o = "</" + C[e] + ">"; -1 !== (t = m.helper.regexIndexOf(g, a)) && (s = m.helper.splitAtIndex(g, t), (i = m.helper.replaceRecursiveRegExp(s[1], I, n, o, "im")) !== s[1]);) g = s[0].concat(i);
        return g = g.replace(/(\n {0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g, m.subParser("hashElement")(g, A, r)), g = (g = m.helper.replaceRecursiveRegExp(g, function (g) {
            return "\n\n¨K" + (r.gHtmlBlocks.push(g) - 1) + "K\n\n"
        }, "^ {0,3}\x3c!--", "--\x3e", "gm")).replace(/(?:\n\n)( {0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g, m.subParser("hashElement")(g, A, r)), r.converter._dispatch("hashHTMLBlocks.after", g, A, r)
    }), m.subParser("hashHTMLSpans", function (g, A, C) {
        "use strict";

        function I(g) {
            return "¨C" + (C.gHtmlSpans.push(g) - 1) + "C"
        }

        return g = (g = (g = (g = (g = C.converter._dispatch("hashHTMLSpans.before", g, A, C)).replace(/<[^>]+?\/>/gi, function (g) {
            return I(g)
        })).replace(/<([^>]+?)>[\s\S]*?<\/\1>/g, function (g) {
            return I(g)
        })).replace(/<([^>]+?)\s[^>]+?>[\s\S]*?<\/\1>/g, function (g) {
            return I(g)
        })).replace(/<[^>]+?>/gi, function (g) {
            return I(g)
        }), C.converter._dispatch("hashHTMLSpans.after", g, A, C)
    }), m.subParser("unhashHTMLSpans", function (g, A, C) {
        "use strict";
        var I, e, r, t;
        for (g = C.converter._dispatch("unhashHTMLSpans.before", g, A, C), I = 0; I < C.gHtmlSpans.length; ++I) {
            for (e = C.gHtmlSpans[I], r = 0; /¨C(\d+)C/.test(e) && (t = RegExp.$1, e = e.replace("¨C" + t + "C", C.gHtmlSpans[t]), 10 !== r);) ++r;
            g = g.replace("¨C" + I + "C", e)
        }
        return C.converter._dispatch("unhashHTMLSpans.after", g, A, C)
    }), m.subParser("hashPreCodeTags", function (g, r, t) {
        "use strict";
        return g = t.converter._dispatch("hashPreCodeTags.before", g, r, t), g = m.helper.replaceRecursiveRegExp(g, function (g, A, C, I) {
            var e = C + m.subParser("encodeCode")(A, r, t) + I;
            return "\n\n¨G" + (t.ghCodeBlocks.push({text: g, codeblock: e}) - 1) + "G\n\n"
        }, "^ {0,3}<pre\\b[^>]*>\\s*<code\\b[^>]*>", "^ {0,3}</code>\\s*</pre>", "gim"), t.converter._dispatch("hashPreCodeTags.after", g, r, t)
    }), m.subParser("headers", function (g, n, o) {
        "use strict";

        function s(g) {
            var A, C, I;
            return n.customizedHeaderId && (I = g.match(/\{([^{]+?)}\s*$/)) && I[1] && (g = I[1]), A = g, C = m.helper.isString(n.prefixHeaderId) ? n.prefixHeaderId : !0 === n.prefixHeaderId ? "section-" : "", n.rawPrefixHeaderId || (A = C + A), A = n.ghCompatibleHeaderId ? A.replace(/ /g, "-").replace(/&amp;/g, "").replace(/¨T/g, "").replace(/¨D/g, "").replace(/[&+$,\/:;=?@"#{}|^¨~\[\]`\\*)(%.!'<>]/g, "").toLowerCase() : n.rawHeaderId ? A.replace(/ /g, "-").replace(/&amp;/g, "&").replace(/¨T/g, "¨").replace(/¨D/g, "$").replace(/["']/g, "-").toLowerCase() : A.replace(/[^\w]/g, "").toLowerCase(), n.rawPrefixHeaderId && (A = C + A), o.hashLinkCounts[A] ? A = A + "-" + o.hashLinkCounts[A]++ : o.hashLinkCounts[A] = 1, A
        }

        var i, A, C, I;
        return g = o.converter._dispatch("headers.before", g, n, o), i = isNaN(parseInt(n.headerLevelStart)) ? 1 : parseInt(n.headerLevelStart), A = n.smoothLivePreview ? /^(.+)[ \t]*\n={2,}[ \t]*\n+/gm : /^(.+)[ \t]*\n=+[ \t]*\n+/gm, C = n.smoothLivePreview ? /^(.+)[ \t]*\n-{2,}[ \t]*\n+/gm : /^(.+)[ \t]*\n-+[ \t]*\n+/gm, g = (g = g.replace(A, function (g, A) {
            var C = m.subParser("spanGamut")(A, n, o), I = n.noHeaderId ? "" : ' id="' + s(A) + '"',
                e = "<h" + i + I + ">" + C + "</h" + i + ">";
            return m.subParser("hashBlock")(e, n, o)
        })).replace(C, function (g, A) {
            var C = m.subParser("spanGamut")(A, n, o), I = n.noHeaderId ? "" : ' id="' + s(A) + '"', e = i + 1,
                r = "<h" + e + I + ">" + C + "</h" + e + ">";
            return m.subParser("hashBlock")(r, n, o)
        }), I = n.requireSpaceBeforeHeadingText ? /^(#{1,6})[ \t]+(.+?)[ \t]*#*\n+/gm : /^(#{1,6})[ \t]*(.+?)[ \t]*#*\n+/gm, g = g.replace(I, function (g, A, C) {
            var I, e, r, t, a = C;
            return n.customizedHeaderId && (a = C.replace(/\s?\{([^{]+?)}\s*$/, "")), I = m.subParser("spanGamut")(a, n, o), e = n.noHeaderId ? "" : ' id="' + s(C) + '"', t = "<h" + (r = i - 1 + A.length) + e + ">" + I + "</h" + r + ">", m.subParser("hashBlock")(t, n, o)
        }), o.converter._dispatch("headers.after", g, n, o)
    }), m.subParser("horizontalRule", function (g, A, C) {
        "use strict";
        g = C.converter._dispatch("horizontalRule.before", g, A, C);
        var I = m.subParser("hashBlock")("<hr />", A, C);
        return g = (g = (g = g.replace(/^ {0,2}( ?-){3,}[ \t]*$/gm, I)).replace(/^ {0,2}( ?\*){3,}[ \t]*$/gm, I)).replace(/^ {0,2}( ?_){3,}[ \t]*$/gm, I), C.converter._dispatch("horizontalRule.after", g, A, C)
    }), m.subParser("images", function (g, A, l) {
        "use strict";

        function n(g, A, C, I, e, r, t, a) {
            var n, o = l.gUrls, s = l.gTitles, i = l.gDimensions;
            if (C = C.toLowerCase(), a || (a = ""), -1 < g.search(/\(<?\s*>? ?(['"].*['"])?\)$/m)) I = ""; else if ("" === I || null === I) {
                if ("" !== C && null !== C || (C = A.toLowerCase().replace(/ ?\n/g, " ")), I = "#" + C, m.helper.isUndefined(o[C])) return g;
                I = o[C], m.helper.isUndefined(s[C]) || (a = s[C]), m.helper.isUndefined(i[C]) || (e = i[C].width, r = i[C].height)
            }
            return A = A.replace(/"/g, "&quot;").replace(m.helper.regexes.asteriskDashAndColon, m.helper.escapeCharactersCallback), n = '<img src="' + (I = I.replace(m.helper.regexes.asteriskDashAndColon, m.helper.escapeCharactersCallback)) + '" alt="' + A + '"', a && (n += ' title="' + (a = a.replace(/"/g, "&quot;").replace(m.helper.regexes.asteriskDashAndColon, m.helper.escapeCharactersCallback)) + '"'), e && r && (n += ' width="' + (e = "*" === e ? "auto" : e) + '"', n += ' height="' + (r = "*" === r ? "auto" : r) + '"'), n + " />"
        }

        return g = (g = (g = (g = (g = (g = l.converter._dispatch("images.before", g, A, l)).replace(/!\[([^\]]*?)] ?(?:\n *)?\[([\s\S]*?)]()()()()()/g, n)).replace(/!\[([^\]]*?)][ \t]*()\([ \t]?<?(data:.+?\/.+?;base64,[A-Za-z0-9+/=\n]+?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(["'])([^"]*?)\6)?[ \t]?\)/g, function (g, A, C, I, e, r, t, a) {
            return n(g, A, C, I = I.replace(/\s/g, ""), e, r, 0, a)
        })).replace(/!\[([^\]]*?)][ \t]*()\([ \t]?<([^>]*)>(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(?:(["'])([^"]*?)\6))?[ \t]?\)/g, n)).replace(/!\[([^\]]*?)][ \t]*()\([ \t]?<?([\S]+?(?:\([\S]*?\)[\S]*?)?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(["'])([^"]*?)\6)?[ \t]?\)/g, n)).replace(/!\[([^\[\]]+)]()()()()()/g, n), l.converter._dispatch("images.after", g, A, l)
    }), m.subParser("italicsAndBold", function (g, A, C) {
        "use strict";

        function I(g, A, C) {
            return A + g + C
        }

        return g = C.converter._dispatch("italicsAndBold.before", g, A, C), g = A.literalMidWordUnderscores ? (g = (g = g.replace(/\b___(\S[\s\S]*)___\b/g, function (g, A) {
            return I(A, "<strong><em>", "</em></strong>")
        })).replace(/\b__(\S[\s\S]*)__\b/g, function (g, A) {
            return I(A, "<strong>", "</strong>")
        })).replace(/\b_(\S[\s\S]*?)_\b/g, function (g, A) {
            return I(A, "<em>", "</em>")
        }) : (g = (g = g.replace(/___(\S[\s\S]*?)___/g, function (g, A) {
            return /\S$/.test(A) ? I(A, "<strong><em>", "</em></strong>") : g
        })).replace(/__(\S[\s\S]*?)__/g, function (g, A) {
            return /\S$/.test(A) ? I(A, "<strong>", "</strong>") : g
        })).replace(/_([^\s_][\s\S]*?)_/g, function (g, A) {
            return /\S$/.test(A) ? I(A, "<em>", "</em>") : g
        }), g = A.literalMidWordAsterisks ? (g = (g = g.replace(/([^*]|^)\B\*\*\*(\S[\s\S]+?)\*\*\*\B(?!\*)/g, function (g, A, C) {
            return I(C, A + "<strong><em>", "</em></strong>")
        })).replace(/([^*]|^)\B\*\*(\S[\s\S]+?)\*\*\B(?!\*)/g, function (g, A, C) {
            return I(C, A + "<strong>", "</strong>")
        })).replace(/([^*]|^)\B\*(\S[\s\S]+?)\*\B(?!\*)/g, function (g, A, C) {
            return I(C, A + "<em>", "</em>")
        }) : (g = (g = g.replace(/\*\*\*(\S[\s\S]*?)\*\*\*/g, function (g, A) {
            return /\S$/.test(A) ? I(A, "<strong><em>", "</em></strong>") : g
        })).replace(/\*\*(\S[\s\S]*?)\*\*/g, function (g, A) {
            return /\S$/.test(A) ? I(A, "<strong>", "</strong>") : g
        })).replace(/\*([^\s*][\s\S]*?)\*/g, function (g, A) {
            return /\S$/.test(A) ? I(A, "<em>", "</em>") : g
        }), C.converter._dispatch("italicsAndBold.after", g, A, C)
    }), m.subParser("lists", function (g, i, s) {
        "use strict";

        function l(g, A) {
            s.gListLevel++, g = g.replace(/\n{2,}$/, "\n");
            var C = /(\n)?(^ {0,3})([*+-]|\d+[.])[ \t]+((\[(x|X| )?])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(¨0| {0,3}([*+-]|\d+[.])[ \t]+))/gm,
                o = /\n[ \t]*\n(?!¨0)/.test(g += "¨0");
            return i.disableForced4SpacesIndentedSublists && (C = /(\n)?(^ {0,3})([*+-]|\d+[.])[ \t]+((\[(x|X| )?])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(¨0|\2([*+-]|\d+[.])[ \t]+))/gm), g = (g = g.replace(C, function (g, A, C, I, e, r, t) {
                t = t && "" !== t.trim();
                var a = m.subParser("outdent")(e, i, s), n = "";
                return r && i.tasklists && (n = ' class="task-list-item" style="list-style-type: none;"', a = a.replace(/^[ \t]*\[(x|X| )?]/m, function () {
                    var g = '<input type="checkbox" disabled style="margin: 0px 0.35em 0.25em -1.6em; vertical-align: middle;"';
                    return t && (g += " checked"), g + ">"
                })), a = a.replace(/^([-*+]|\d\.)[ \t]+[\S\n ]*/g, function (g) {
                    return "¨A" + g
                }), A || -1 < a.search(/\n{2,}/) ? (a = m.subParser("githubCodeBlocks")(a, i, s), a = m.subParser("blockGamut")(a, i, s)) : (a = (a = m.subParser("lists")(a, i, s)).replace(/\n$/, ""), a = (a = m.subParser("hashHTMLBlocks")(a, i, s)).replace(/\n\n+/g, "\n\n"), a = o ? m.subParser("paragraphs")(a, i, s) : m.subParser("spanGamut")(a, i, s)), "<li" + n + ">" + (a = a.replace("¨A", "")) + "</li>\n"
            })).replace(/¨0/g, ""), s.gListLevel--, A && (g = g.replace(/\s+$/, "")), g
        }

        function c(g, A) {
            if ("ol" === A) {
                var C = g.match(/^ *(\d+)\./);
                if (C && "1" !== C[1]) return ' start="' + C[1] + '"'
            }
            return ""
        }

        function e(e, r, t) {
            var g, a = i.disableForced4SpacesIndentedSublists ? /^ ?\d+\.[ \t]/gm : /^ {0,3}\d+\.[ \t]/gm,
                n = i.disableForced4SpacesIndentedSublists ? /^ ?[*+-][ \t]/gm : /^ {0,3}[*+-][ \t]/gm, o = "ul" === r ? a : n, s = "";
            return -1 !== e.search(o) ? function g(A) {
                var C = A.search(o), I = c(e, r);
                -1 !== C ? (s += "\n\n<" + r + I + ">\n" + l(A.slice(0, C), !!t) + "</" + r + ">\n", o = "ul" == (r = "ul" === r ? "ol" : "ul") ? a : n, g(A.slice(C))) : s += "\n\n<" + r + I + ">\n" + l(A, !!t) + "</" + r + ">\n"
            }(e) : (g = c(e, r), s = "\n\n<" + r + g + ">\n" + l(e, !!t) + "</" + r + ">\n"), s
        }

        return g = s.converter._dispatch("lists.before", g, i, s), g += "¨0", g = (g = s.gListLevel ? g.replace(/^(( {0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(¨0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm, function (g, A, C) {
            return e(A, -1 < C.search(/[*+-]/g) ? "ul" : "ol", !0)
        }) : g.replace(/(\n\n|^\n?)(( {0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(¨0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm, function (g, A, C, I) {
            return e(C, -1 < I.search(/[*+-]/g) ? "ul" : "ol", !1)
        })).replace(/¨0/, ""), s.converter._dispatch("lists.after", g, i, s)
    }), m.subParser("metadata", function (g, A, I) {
        "use strict";

        function e(g) {
            (g = (g = (I.metadata.raw = g).replace(/&/g, "&amp;").replace(/"/g, "&quot;")).replace(/\n {4}/g, " ")).replace(/^([\S ]+): +([\s\S]+?)$/gm, function (g, A, C) {
                return I.metadata.parsed[A] = C, ""
            })
        }

        return A.metadata ? (g = (g = (g = (g = I.converter._dispatch("metadata.before", g, A, I)).replace(/^\s*«««+(\S*?)\n([\s\S]+?)\n»»»+\n/, function (g, A, C) {
            return e(C), "¨M"
        })).replace(/^\s*---+(\S*?)\n([\s\S]+?)\n---+\n/, function (g, A, C) {
            return A && (I.metadata.format = A), e(C), "¨M"
        })).replace(/¨M/g, ""), g = I.converter._dispatch("metadata.after", g, A, I)) : g
    }), m.subParser("outdent", function (g, A, C) {
        "use strict";
        return g = (g = (g = C.converter._dispatch("outdent.before", g, A, C)).replace(/^(\t|[ ]{1,4})/gm, "¨0")).replace(/¨0/g, ""), C.converter._dispatch("outdent.after", g, A, C)
    }), m.subParser("paragraphs", function (g, A, C) {
        "use strict";
        var I, e, r, t, a, n, o, s, i, l;
        for (e = [], r = (I = (g = (g = (g = C.converter._dispatch("paragraphs.before", g, A, C)).replace(/^\n+/g, "")).replace(/\n+$/g, "")).split(/\n{2,}/g)).length, t = 0; t < r; t++) 0 <= (a = I[t]).search(/¨(K|G)(\d+)\1/g) ? e.push(a) : 0 <= a.search(/\S/) && (a = (a = m.subParser("spanGamut")(a, A, C)).replace(/^([ \t]*)/g, "<p>"), a += "</p>", e.push(a));
        for (r = e.length, t = 0; t < r; t++) {
            for (n = "", o = e[t], s = !1; /¨(K|G)(\d+)\1/.test(o);) i = RegExp.$1, l = RegExp.$2, n = (n = "K" === i ? C.gHtmlBlocks[l] : s ? m.subParser("encodeCode")(C.ghCodeBlocks[l].text, A, C) : C.ghCodeBlocks[l].codeblock).replace(/\$/g, "$$$$"), o = o.replace(/(\n\n)?¨(K|G)\d+\2(\n\n)?/, n), /^<pre\b[^>]*>\s*<code\b[^>]*>/.test(o) && (s = !0);
            e[t] = o
        }
        return g = (g = (g = e.join("\n")).replace(/^\n+/g, "")).replace(/\n+$/g, ""), C.converter._dispatch("paragraphs.after", g, A, C)
    }), m.subParser("runExtension", function (g, A, C, I) {
        "use strict";
        if (g.filter) A = g.filter(A, I.converter, C); else if (g.regex) {
            var e = g.regex;
            e instanceof RegExp || (e = new RegExp(e, "g")), A = A.replace(e, g.replace)
        }
        return A
    }), m.subParser("spanGamut", function (g, A, C) {
        "use strict";
        return g = C.converter._dispatch("spanGamut.before", g, A, C), g = m.subParser("codeSpans")(g, A, C), g = m.subParser("escapeSpecialCharsWithinTagAttributes")(g, A, C), g = m.subParser("encodeBackslashEscapes")(g, A, C), g = m.subParser("images")(g, A, C), g = m.subParser("anchors")(g, A, C), g = m.subParser("autoLinks")(g, A, C), g = m.subParser("simplifiedAutoLinks")(g, A, C), g = m.subParser("emoji")(g, A, C), g = m.subParser("underline")(g, A, C), g = m.subParser("italicsAndBold")(g, A, C), g = m.subParser("strikethrough")(g, A, C), g = m.subParser("ellipsis")(g, A, C), g = m.subParser("hashHTMLSpans")(g, A, C), g = m.subParser("encodeAmpsAndAngles")(g, A, C), A.simpleLineBreaks ? /\n\n¨K/.test(g) || (g = g.replace(/\n+/g, "<br />\n")) : g = g.replace(/  +\n/g, "<br />\n"), C.converter._dispatch("spanGamut.after", g, A, C)
    }), m.subParser("strikethrough", function (g, I, e) {
        "use strict";
        return I.strikethrough && (g = (g = e.converter._dispatch("strikethrough.before", g, I, e)).replace(/(?:~){2}([\s\S]+?)(?:~){2}/g, function (g, A) {
            return C = A, I.simplifiedAutoLink && (C = m.subParser("simplifiedAutoLinks")(C, I, e)), "<del>" + C + "</del>";
            var C
        }), g = e.converter._dispatch("strikethrough.after", g, I, e)), g
    }), m.subParser("stripLinkDefinitions", function (g, a, n) {
        "use strict";
        var A = function (g, A, C, I, e, r, t) {
            return A = A.toLowerCase(), C.match(/^data:.+?\/.+?;base64,/) ? n.gUrls[A] = C.replace(/\s/g, "") : n.gUrls[A] = m.subParser("encodeAmpsAndAngles")(C, a, n), r ? r + t : (t && (n.gTitles[A] = t.replace(/"|'/g, "&quot;")), a.parseImgDimensions && I && e && (n.gDimensions[A] = {
                width: I,
                height: e
            }), "")
        };
        return (g = (g = (g += "¨0").replace(/^ {0,3}\[(.+)]:[ \t]*\n?[ \t]*<?(data:.+?\/.+?;base64,[A-Za-z0-9+/=\n]+?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n\n|(?=¨0)|(?=\n\[))/gm, A)).replace(/^ {0,3}\[(.+)]:[ \t]*\n?[ \t]*<?([^>\s]+)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n+|(?=¨0))/gm, A)).replace(/¨0/, "")
    }), m.subParser("tables", function (g, p, h) {
        "use strict";

        function A(g) {
            var A, C, I, e, r, t, a, n, o, s, i, l, c, u, d = g.split("\n");
            for (A = 0; A < d.length; ++A) /^ {0,3}\|/.test(d[A]) && (d[A] = d[A].replace(/^ {0,3}\|/, "")), /\|[ \t]*$/.test(d[A]) && (d[A] = d[A].replace(/\|[ \t]*$/, "")), d[A] = m.subParser("codeSpans")(d[A], p, h);
            for (C = d[0].split("|").map(function (g) {
                return g.trim()
            }), I = d[1].split("|").map(function (g) {
                return g.trim()
            }), e = [], r = [], t = [], a = [], d.shift(), d.shift(), A = 0; A < d.length; ++A) "" !== d[A].trim() && e.push(d[A].split("|").map(function (g) {
                return g.trim()
            }));
            if (C.length < I.length) return g;
            for (A = 0; A < I.length; ++A) t.push((s = I[A], /^:[ \t]*--*$/.test(s) ? ' style="text-align:left;"' : /^--*[ \t]*:[ \t]*$/.test(s) ? ' style="text-align:right;"' : /^:[ \t]*--*[ \t]*:$/.test(s) ? ' style="text-align:center;"' : ""));
            for (A = 0; A < C.length; ++A) m.helper.isUndefined(t[A]) && (t[A] = ""), r.push((i = C[A], l = t[A], c = void 0, c = "", i = i.trim(), (p.tablesHeaderId || p.tableHeaderId) && (c = ' id="' + i.replace(/ /g, "_").toLowerCase() + '"'), "<th" + c + l + ">" + (i = m.subParser("spanGamut")(i, p, h)) + "</th>\n"));
            for (A = 0; A < e.length; ++A) {
                for (n = [], o = 0; o < r.length; ++o) m.helper.isUndefined(e[A][o]), n.push((u = e[A][o], "<td" + t[o] + ">" + m.subParser("spanGamut")(u, p, h) + "</td>\n"));
                a.push(n)
            }
            return function (g, A) {
                var C, I, e, r;
                for (C = "<table>\n<thead>\n<tr>\n", I = g.length, e = 0; e < I; ++e) C += g[e];
                for (C += "</tr>\n</thead>\n<tbody>\n", e = 0; e < A.length; ++e) {
                    for (C += "<tr>\n", r = 0; r < I; ++r) C += A[e][r];
                    C += "</tr>\n"
                }
                return C + "</tbody>\n</table>\n"
            }(r, a)
        }

        return p.tables ? (g = (g = (g = (g = h.converter._dispatch("tables.before", g, p, h)).replace(/\\(\|)/g, m.helper.escapeCharactersCallback)).replace(/^ {0,3}\|?.+\|.+\n {0,3}\|?[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*:?[ \t]*(?:[-=]){2,}[\s\S]+?(?:\n\n|¨0)/gm, A)).replace(/^ {0,3}\|.+\|[ \t]*\n {0,3}\|[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*\n( {0,3}\|.+\|[ \t]*\n)*(?:\n|¨0)/gm, A), h.converter._dispatch("tables.after", g, p, h)) : g
    }), m.subParser("underline", function (g, A, C) {
        "use strict";
        return A.underline ? (g = C.converter._dispatch("underline.before", g, A, C), g = (g = A.literalMidWordUnderscores ? g.replace(/\b_?__(\S[\s\S]*)___?\b/g, function (g, A) {
            return "<u>" + A + "</u>"
        }) : g.replace(/_?__(\S[\s\S]*?)___?/g, function (g, A) {
            return /\S$/.test(A) ? "<u>" + A + "</u>" : g
        })).replace(/(_)/g, m.helper.escapeCharactersCallback), g = C.converter._dispatch("underline.after", g, A, C)) : g
    }), m.subParser("unescapeSpecialChars", function (g, A, C) {
        "use strict";
        return g = (g = C.converter._dispatch("unescapeSpecialChars.before", g, A, C)).replace(/¨E(\d+)E/g, function (g, A) {
            var C = parseInt(A);
            return String.fromCharCode(C)
        }), C.converter._dispatch("unescapeSpecialChars.after", g, A, C)
    });
    "function" == typeof define && define.amd ? define(function () {
        "use strict";
        return m
    }) : "undefined" != typeof module && module.exports ? module.exports = m : this.showdown = m
}).call(this);